1. Field of the Invention
This invention generally relates to component based software applications, and more specifically, to a policy configuration mechanism for applications that are comprised of an assembly of software components. Even more specifically, the preferred embodiment of the invention relates to such a mechanism that is very well suited for use with Service Component Architecture applications.
2. Background Art
The Service Component Architecture (SCA) is a specification put forward by software vendors with the objective of simplifying how organizations create and implement applications in a Service Oriented Architecture (SOA). SCA is included in the SOA Programming Model along with Service Data Objects (SDO), which allow heterogeneous data to be accessed and manipulated in a uniform manner. An SCA application is based on service components, which may be configured to provide services, consume other services, or both. These service components may be packaged together with import components and export components into SCA modules, and communicate with one another using SCA messages. SCA has become a standard method for building applications that are comprised of an assembly of software components. Configuring non-functional requirements of such applications (such as transactional or security requirements) is a tedious error-prone task since the individual components that make up the application have to be configured manually; this complexity increases with the number of components used to create the application. An additional problem is the resolution of the semantics of policy application to the component under certain situations: where the meaning of policy application is generally ambiguous.
In the past, componentized applications were comprised of a few components, and configuration was possible to do manually, even if it was somewhat tedious. Recent advances in the field such as the development of recursive component architectures like Service Component Architecture (SCA) and CORBA Component Model (CCM) have made it possible to create applications recursively, which is to say that each of the components used to build an application can itself be built using components. Such recursive component models have significantly increased the complexity of configuring non-functional properties in such applications. SCA provides high-level declarations of policies to simplify configuration, but even such declarations have to be applied manually. Model-Driven Development techniques have been used to simplify configuration of middleware systems. Model-driven techniques, however, need much more knowledge about the systems (through the development of an IT model) in order to make simplifications in configuration.